#include <STC89C5xRC.H>
#include "Delay.h"
#include "LCD1602.h"
#include "MatrixKey.h"

unsigned char KeyNum;
unsigned int Password,Count;

void main()
{	
	LCD_Init();
	LCD_ShowString(1,1,"Password:");
	while(1)
	{
		KeyNum=MatrixKey();
		if(KeyNum)
		{	
			if(KeyNum<=10)//如果S1~S10按键按下，输入密码
			{	
				if(Count<3)
				{	
					Password*=10;       //乘10赋给自己，功能为密码左移一位
					Password+=KeyNum%10;/*1~9对10取余为其本身，10对10取余为0，这样
				                      就实现了S1~S10按键输入密码1~9的功能*/
					Count++;            //计次加一，如果输入次数大于四，则不接收密码
					LCD_ShowNum(2,1,Password,3);
				}
			}
			if(KeyNum==11) //S11键为确认功能
			{
				if(Password==818)//密码设置为818
				{
					LCD_ShowString(1,12,"  OK ");
					Password=0;//密码清零
					Count=0;//计次清零，才能继续输入
					LCD_ShowNum(2,1,Password,3);//更新显示

				}
				else
				{
					LCD_ShowString(1,12,"ERROR");
					Password=0;
					Count=0;
					LCD_ShowNum(2,1,Password,3);//更新显示
				}
			}
			if(KeyNum==12)//S12按键设置为取消键，取消可重新输入密码
			{
					Password=0;//密码清零
					Count=0;//计次清零，才能继续输入
					LCD_ShowNum(2,1,Password,0);//更新显示
			}
		}
	}
}
